Upon system boot, reset, and shutdown, a computer system executes one or more routines to self-test, identify, initialize, and/or disable devices, memory, and other components of the system. Computer systems typically store these routines in nonvolatile memory and implicitly trust their genuineness. As a result, corrupted routines, such as those created by malicious programmers, can exploit this trust to corrupt the computer system.
To identify corrupted routines before they affect the computer system, several systems include a dedicated microprocessor (e.g., a secured cryptoprocessor) to authenticate (e.g., using cryptographic keys) system hardware devices, memory, and other components and their corresponding routines before allowing them to communicate and interact with the remainder of the computer system. The dedicated microprocessor may perform this authentication for several hardware devices, memory, and other components across the computer system. Thus, the dedicated microprocessor must use the computer system bus to send and receive authentication data. This opens the computer system up to “man in the middle” or “bus sniffing” attacks, wherein the valid authentication data could be read from the system bus, altered, and/or replaced with falsified data.